﻿namespace MicroCloud.Identity.Dtos
{
    /// <summary>
    /// 组织机构信息输入DTO基类
    /// </summary>
    /// <typeparam name="TOrganizationKey">组织机构编号类型</typeparam>
    public abstract class OrganizationInputDtoBase<TOrganizationKey> : IInputDto<TOrganizationKey>
          where TOrganizationKey : struct, IEquatable<TOrganizationKey>
    {
        #region "属性"
        #region "获取或设置 组织机构编号"
        /// <summary>
        /// 获取或设置 组织机构编号
        /// </summary>
        [DisplayName("编号")]
        public TOrganizationKey Id { get; set; }
        #endregion

        #region "获取或设置 组织机构编码"
        /// <summary>
        /// 获取或设置 组织机构编码
        /// </summary>
        [DisplayName("组织机构编码")]
        public string Code { get; set; }
        #endregion

        #region "获取或设置 组织机构类型"
        /// <summary>
        /// 获取或设置 组织机构类型
        /// </summary>
        [DisplayName("组织机构类型")]
        public OrganizationType Type { get; set; }
        #endregion
        #region "获取或设置 组织机构名称"
        /// <summary>
        /// 获取或设置 组织机构名称
        /// </summary>
        [DisplayName("组织机构名称")]
        public string Name { get; set; }
        #endregion
        #region "获取或设置 组织机构描述"
        /// <summary>
        /// 获取或设置 组织机构描述
        /// </summary>
        [DisplayName("组织机构描述")]
        public string Description { get; set; }
        #endregion

        #region "获取或设置 顺序编号"
        /// <summary>
        /// 获取或设置 顺序编号
        /// </summary>
        [DisplayName("顺序编号")]
        public decimal OrderNo { get; set; }
        #endregion
        #region "获取或设置 父组织机构编号"
        /// <summary>
        /// 获取或设置 父组织机构编号
        /// </summary>
        [DisplayName("父组织机构编号")]
        public TOrganizationKey? ParentId { get; set; }
        #endregion

        #region "获取或设置 启用登陆"
        /// <summary>
        /// 获取或设置 启用登陆
        /// </summary>
        [DisplayName("启用登陆")]
        public bool EnableLogin { set; get; }
        #endregion
        #region "获取或设置 默认组织机构"
        /// <summary>
        /// 获取或设置 默认组织机构
        /// </summary>
        [DisplayName("默认组织机构")]
        public bool IsDefault { get; set; }
        #endregion

        #region "获取或设置 是否锁定当前信息"
        /// <summary>
        /// 获取或设置 是否锁定当前信息
        /// </summary>
        [DisplayName("是否锁定")]
        public bool IsLocked { get; set; }
        #endregion

        #endregion

    }

}
